module.exports = app => {
    const seq = app.Sequelize;

    const Article = app.model.define('article', {
        id:{
            type:seq.INTEGER,
            autoIncrement:true,
            allowNull:false,
            primaryKey:true,
            unique:true
        },
        title:{
            type:seq.STRING,
            allowNull:false
        },
        cover:{
            type:seq.STRING,
            allowNull:true
        },
        author:{
            type:seq.STRING,
            allowNull:true
        },
        content:{
            type:seq.TEXT,
            allowNull:true
        },
        view:{
            type:seq.INTEGER,
            allowNull:false,
            defaultValue:0
        },
        nice:{
            type:seq.INTEGER,
            allowNull:false,
            defaultValue:0
        },
        order:{
            type:seq.INTEGER,
            allowNull:true
        },
        attr1:{
            type:seq.STRING,
            allowNull:true
        },
        attr2:{
            type:seq.STRING,
            allowNull:true
        },
        attr3:{
            type:seq.STRING,
            allowNull:true
        },
        attr4:{
            type:seq.STRING,
            allowNull:true
        },
        attr5:{
            type:seq.STRING,
            allowNull:true
        },
        attr6:{
            type:seq.STRING,
            allowNull:true
        },
        attr7:{
            type:seq.STRING,
            allowNull:true
        },
        attr8:{
            type:seq.STRING,
            allowNull:true
        },
        attr9:{
            type:seq.STRING,
            allowNull:true
        },
        attr10:{
            type:seq.STRING,
            allowNull:true
        },
        attr11:{
            type:seq.STRING,
            allowNull:true
        },
        attr12:{
            type:seq.STRING,
            allowNull:true
        },
        attr13:{
            type:seq.STRING,
            allowNull:true
        },
        attr14:{
            type:seq.STRING,
            allowNull:true
        },
        attr15:{
            type:seq.STRING,
            allowNull:true
        },
        attr16:{
            type:seq.STRING,
            allowNull:true
        },
        attr17:{
            type:seq.STRING,
            allowNull:true
        },
    },{
        timestamps:true,
        paranoid:true,
        underscored:false
    });

    Article.associate=function () {
        app.model.Article.hasMany(app.model.ArticleComment);
        app.model.Article.hasMany(app.model.Score);
        app.model.Article.hasMany(app.model.Nice);
    };


    return Article;
};